﻿// -----------------------------------------------------------------------
// <copyright file="GooglePlusParameters.cs" company="Microsoft">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------
namespace SDW_GooglePlusButton
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// Enumeration of sizes of the button
    /// </summary>
    public enum GooglePlusButtonSizes
    {
        /// <summary>
        /// Small Button
        /// </summary>
        Small,

        /// <summary>
        /// Medium Button
        /// </summary>
        Medium,

        /// <summary>
        /// Standard is between Small and Tall
        /// </summary>
        Standard,

        /// <summary>
        /// Tall Button
        /// </summary>
        Tall
    }

    /// <summary>
    /// Enumeration of Languages for the button
    /// </summary>
    public enum GooglePlusButtonLanguages
    {
        /// <summary>
        /// Arabic Language
        /// </summary>
        [StringValue("ar")]
        Arabic,

        /// <summary>
        /// Bulgarian Language
        /// </summary>
        [StringValue("bg")]
        Bulgarian,

        /// <summary>
        /// Catalan Language
        /// </summary>
        [StringValue("ca")]
        Catalan,

        /// <summary>
        /// Simple Chinese Language
        /// </summary>
        [StringValue("zh-CN")]
        SimpleChinese,

        /// <summary>
        /// Traditional Chinese Language
        /// </summary>
        [StringValue("zh-TW")]
        TraditionalChinese,

        /// <summary>
        /// Croatian Language
        /// </summary>
        [StringValue("hr")]
        Croatian,

        /// <summary>
        /// Czech Language
        /// </summary>
        [StringValue("cs")]
        Czech,

        /// <summary>
        /// Danish Language
        /// </summary>
        [StringValue("da")]
        Danish,

        /// <summary>
        /// Dutch Language
        /// </summary>
        [StringValue("nl")]
        Dutch,

        /// <summary>
        /// English(UK) Language
        /// </summary>
        [StringValue("en-GB")]
        EnglishUK,

        /// <summary>
        /// English(US) Language
        /// </summary>
        [StringValue("en-US")]
        EnglishUS,

        /// <summary>
        /// Estonian Language
        /// </summary>
        [StringValue("et")]
        Estonian,

        /// <summary>
        /// Filipino Language
        /// </summary>
        [StringValue("fil")]
        Filipino,

        /// <summary>
        /// Finnish Language
        /// </summary>
        [StringValue("fi")]
        Finnish,

        /// <summary>
        /// French Language
        /// </summary>
        [StringValue("fr")]
        French,

        /// <summary>
        /// German Language
        /// </summary>
        [StringValue("de")]
        German,

        /// <summary>
        /// Greek Language
        /// </summary>
        [StringValue("el")]
        Greek,

        /// <summary>
        /// Hebrew Language
        /// </summary>
        [StringValue("iw")]
        Hebrew,

        /// <summary>
        /// Hindi Language
        /// </summary>
        [StringValue("hi")]
        Hindi,

        /// <summary>
        ///  Hungarian Language
        /// </summary>
        [StringValue("hu")]
        Hungarian,

        /// <summary>
        /// Indonesian Language
        /// </summary>
        [StringValue("id")]
        Indonesian,

        /// <summary>
        /// Italian Language
        /// </summary>
        [StringValue("it")]
        Italian,

        /// <summary>
        /// Japanese Language
        /// </summary>
        [StringValue("ja")]
        Japanese,

        /// <summary>
        /// Korean Language
        /// </summary>
        [StringValue("ko")]
        Korean,

        /// <summary>
        /// Latvian Language
        /// </summary>
        [StringValue("lv")]
        Latvian,

        /// <summary>
        /// Lithuanian Language
        /// </summary>
        [StringValue("lt")]
        Lithuanian,

        /// <summary>
        /// Malay Language
        /// </summary>
        [StringValue("ms")]
        Malay,

        /// <summary>
        /// Norwegian Language
        /// </summary>
        [StringValue("no")]
        Norwegian,

        /// <summary>
        /// Persian Language
        /// </summary>
        [StringValue("fa")]
        Persian,

        /// <summary>
        /// Polish Language
        /// </summary>
        [StringValue("pl")]
        Polish,

        /// <summary>
        /// Portuguese(Brazil) Language
        /// </summary>
        [StringValue("pt-BR")]
        PortugueseBrazil,

        /// <summary>
        /// Portuguese(Portugal) Language
        /// </summary>
        [StringValue("pt-PT")]
        PortuguesePortugal,

        /// <summary>
        /// Romanian Language
        /// </summary>
        [StringValue("ro")]
        Romanian,

        /// <summary>
        /// Rusian Language
        /// </summary>
        [StringValue("ru")]
        Russian,

        /// <summary>
        /// Serbian Language
        /// </summary>
        [StringValue("sr")]
        Serbian,

        /// <summary>
        /// Slovak Language
        /// </summary>
        [StringValue("sk")]
        Slovak,

        /// <summary>
        /// Slovenian Language
        /// </summary>
        [StringValue("sl")]
        Slovenian,

        /// <summary>
        /// Spanish Language
        /// </summary>
        [StringValue("es")]
        Spanish,

        /// <summary>
        /// Spanish(Latin-Amerika) Language
        /// </summary>
        [StringValue("es-419")]
        SpanishLatinAmerika,

        /// <summary>
        /// Swedish Language
        /// </summary>
        [StringValue("sv")]
        Swedish,

        /// <summary>
        /// Thai Language
        /// </summary>
        [StringValue("th")]
        Thai,

        /// <summary>
        /// Tuskish Language
        /// </summary>
        [StringValue("tr")]
        Turkish,

        /// <summary>
        /// Ukrianian Language
        /// </summary>
        [StringValue("uk")]        
        Ukrianian,

        /// <summary>
        /// Vietnamese Language
        /// </summary>
        [StringValue("vi")]
        Vietnamese
    }

    /// <summary>
    /// Enumaration of parseTags for the button
    /// </summary>
    public enum GooglePlusButtonParseTags
    {
        /// <summary>
        /// Parse tag on load of the page
        /// </summary>
        OnLoad,

        /// <summary>
        /// Parse tag explicit
        /// </summary>
        Explicit
    }

    /// <summary>
    /// Parameter object for a Google +1 button
    /// </summary>
    public class GooglePlusParameters
    {
        /// <summary>
        /// Gets or sets The Size of the button
        /// </summary>
        public GooglePlusButtonSizes? Size { get; set; }

        /// <summary>
        /// Gets or sets the need of a counter
        /// </summary>
        public bool? Count { get; set; }

        /// <summary>
        /// Gets or sets the name of the javascript function you want to call when done the +1 action
        /// </summary>
        public string CallBack { get; set; }

        /// <summary>
        /// Gets or sets the displayLanguage of the button
        /// </summary>
        public GooglePlusButtonLanguages? Language { get; set; }

        /// <summary>
        /// Gets or sets when to load the button
        /// </summary>
        public GooglePlusButtonParseTags? ParseTags { get; set; }

        /// <summary>
        /// Gets or sets the url that will be given to Google +
        /// </summary>
        public string Url { get; set; }
    }
}
